package com.strategy.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.strategy.entity.StrategyEntity;

import java.util.List;

/**
 * 策略服务接口
 */
public interface StrategyService extends IService<StrategyEntity> {

    /**
     * 根据策略key查询所有版本
     */
    List<StrategyEntity> getByStrategyKey(String strategyKey);

    /**
     * 根据策略key查询默认版本
     */
    StrategyEntity getDefaultByKey(String strategyKey);

    /**
     * 分页查询策略
     */
    IPage<StrategyEntity> queryPage(Page<StrategyEntity> page, String key, Integer status);

    /**
     * 设置为默认版本
     */
    boolean setAsDefault(Long id);

    /**
     * 注册策略到数据库
     */
    void registerStrategy(StrategyEntity strategyEntity);
}
